Utility-Based Cache Partitioning
نویسندگان
چکیده
This paper investigates the problem of partitioning a shared cache between multiple concurrently executing applications. The commonly used LRU policy implicitly partitions a shared cache on a demand basis, giving more cache resources to the application that has a high demand and fewer cache resources to the application that has a low demand. However, a higher demand for cache resources does not always correlate with a higher performance from additional cache resources. It is beneficial for performance to invest cache resources in the application that benefits more from the cache resources rather than in the application that has more demand for the cache resources. This paper proposes utility-based cache partitioning (UCP), a low-overhead, runtime mechanism that partitions a shared cache between multiple applications depending on the reduction in cache misses that each application is likely to obtain for a given amount of cache resources. The proposed mechanism monitors each application at runtime using a novel, cost-effective, hardware circuit that requires less than 2kB of storage. The information collected by the monitoring circuits is used by a partitioning algorithm to decide the amount of cache resources allocated to each application. Our evaluation, with 20 multiprogrammed workloads, shows that UCP improves performance of a dualcore system by up to 23% and on average 11% over LRU-based cache partitioning.
منابع مشابه
A Per-File Partitioned Page Cache
In this paper we describe a new design of the operating system page cache. Page caches form an important part of the memory hierarchy and are used to access file-system data. In most operating systems, there exists a single page cache whose contents are replaced according to a LRU eviction policy. We design and implement a page cache which is partitioned by file—the per-file page cache. The per...
متن کاملSharing LRU Cache Resources among Content Providers: A Utility-Based Approach
In this paper, we consider the problem of allocating cache resources among multiple content providers. The cache can be partitioned into slices and each partition can be dedicated to a particular content provider, or shared among a number of them. It is assumed that each partition employs the LRU policy for managing content. We propose utility-driven partitioning, where we associate with each c...
متن کاملDynamic Classification of Program Memory Behaviors in CMPs
Multi-core processors with shared L2 caches can suffer from performance degradations when co-scheduled programs contend for cache resources in a destructive manner. In this work, we propose a new classification algorithm for determining the “personalities” of the programs with respect to their cache sharing behaviors. We first demonstrate that our scheme can more accurately predict when cache s...
متن کاملEfficient Way-based Cache Partitioning for Low-Associativity Cache
Cache Partitioning is well-known technique to reduce destructive interference among co-running applications in a shared last-level cache (SLLC). Way-based cache partitioning is a popular partitioning scheme due to its simplicity, but it can dramatically reduce associativity of each partition. Also, most SLLC have limited associativity because the higher associativity causes the higher cache acc...
متن کاملSynergy: A Hypervisor Managed Holistic Caching System
Efficient system-wide memory management is an important challenge for over-commitment based hosting in virtualized systems. Due to the limitation of memory domains considered for sharing, current deduplication solutions simply cannot achieve system-wide deduplication. Popular memory management techniques like sharing and ballooning enable important memory usage optimizations individually. Howev...
متن کامل